package com.study.bigevent.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;

import java.util.Date;
import java.util.Map;

public class JwtUtil {

    // 定义JWT的密钥，用于签名和验证JWT
    private static final String KEY = "chenxinhong";
	
    //生成token
    public static String genToken(Map<String, Object> claims) {
        return JWT.create()
                // 将业务数据添加到JWT的claims中
                .withClaim("claims", claims)
                // 设置JWT的过期时间，当前时间加上12小时
                .withExpiresAt(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 12))
                // 使用HMAC256算法对JWT进行签名，密钥为KEY
                .sign(Algorithm.HMAC256(KEY));
    }


     // 解析并验证JWT Token
    public static Map<String, Object> parseToken(String token) {
        return JWT.require(Algorithm.HMAC256(KEY))
                // 构建JWT验证器
                .build()
                // 验证并解析JWT Token
                .verify(token)
                // 获取JWT中的claims数据
                .getClaim("claims")
                // 将claims数据转换为Map对象
                .asMap();
    }

}